import java.util.Stack;

public class Test {
    public static void main(String[] args) {
        // 1. 创建Stack对象
        Stack<Integer> stack = new Stack<>();

        // 2. push(E item) - 将元素压入栈顶
        stack.push(10);
        stack.push(20);
        stack.push(30);

        // 3. peek() - 查看栈顶元素但不移除
        int topElement = stack.peek();
        System.out.println("栈顶元素: " + topElement);// 栈顶元素: 30

        // 4. pop() - 移除并返回栈顶元素
        int poppedElement = stack.pop();
        System.out.println("弹出的元素: " + poppedElement);// 弹出的元素: 30

        // 5. search(Object o) - 查找元素在栈中的位置(从栈顶开始计数，栈顶为1)
        int position = stack.search(10);  // 返回2 (20在栈顶位置1，10在位置2)
        System.out.println("元素10的位置: " + position);// 元素10的位置: 2

        if(stack.empty()){
            System.out.println("栈空");
        }else{
            System.out.println(stack.size());
        }
        // 输出：2

        // 6. 遍历栈
        System.out.println("栈中的元素(从栈底到栈顶):");
        for (Integer element : stack) {
            System.out.println(element);
        }
        /*输出：
        栈中的元素(从栈底到栈顶):
        10
        20*/
    }
}
